#Aufgabe 21

# Schreiben Sie ein Skript mybashpath. Aufruf:
#	mybashpath files
# Das Skript ersetzt in den angegebenen Dateien in der ersten Zeile
# den bash-Path durch den auf dem aktuellen System gültigen bash-Path,
# z.B. wird
#  #!/usr/local/bin/bash -w
# ersetzt durch
#  #!/usr/bin/bash -w
# Dabei ist zu berücksichtigen, dass hinter bash keine oder eine Option
# folgen kann. Der richtige Pfad soll durch das Skript ermittelt werden.
# Wenn der Pfad bereits stimmt, wird nichts getan.
# Vor einer Ersetzung wird die Originaldatei mit der Endung .bak
# gesichert. Die Datei soll nach der Ersetzung die gleichen Rechte
# wie vorher haben.
# Wenn eine der angegebenen Dateien keine normale Datei ist oder
# nicht lesbar ist oder kein bash-Skript ist oder ein
# bash-Skript ist, dass nicht mit einer #!-Zeile beginnt, wird
# diese Datei nicht berücksichtigt.
# Wenn das Skript ohne Parameter aufgerufen wird, erscheint eine
# Meldung, wie das Skript zu benutzen ist.
# Alle Fehlermeldungen und Warnungen sollen auf die Standardfehlerausgabe
# ausgegeben werden.

if [[ $# -lt 1 ]]
then
   echo -e Failure! Correct call:\n\t\t task21.sh file1 file2 ... filen >&2
   exit 1
fi

shopt -s extglob

for file in $*
do
   if [[ -f $file ]] && [[ -r $file ]] &&  [[ $(head --lines 1 $file) = @(\#\!*) ]]
   then
     cp -p $file $file.bak
     echo juchhu
   else
      echo File $file skipped!
   fi
done


exit 0